package team.se.tms.service.impl;

import team.se.tms.dto.Page;
import team.se.tms.dto.ParameterMap;
import team.se.tms.dto.ParameterPage;

/**
 * 业务层基类，定义并实现了一些通用方法
 *
 * @author winkyle
 * @date 2018/11/30
 */
public class BaseServiceImpl {
    /**
     * 创建一个ParameterPage
     *
     * @return 一个 {@link ParameterPage}
     * @create on 2018/11/30 by winkyle
     */
    public ParameterPage getParameterPage(){
        return getParameterPage(null);
    }

    /**
     * 创建一个ParameterPage
     *
     * @param page 分页
     * @param data 数据
     * @return 一个 {@link ParameterPage}
     * @create on 2018/12/6 by winkyle
     */
    public ParameterPage getParameterPage(Page page,Object... data){
        ParameterPage parameterPage = new ParameterPage();
        if(page!=null) {
            parameterPage.setPage(page);
        }
        if(data!=null&&data.length % 2 != 1) {
            for (int i = 0; i < data.length / 2; i++) {
                parameterPage.put(data[i * 2], data[i * 2 + 1]);
            }
        }
        return parameterPage;
    }

    /**
     * 创建一个ParameterMap
     *
     * @return 一个 {@link ParameterMap}
     * @create on 2018/11/30 by winkyle
     */
    public ParameterMap getParameterMap() {
        return getParameterMap(null);
    }

    /**
     * 创建一个ParameterMap
     *
     * @param data 数据
     * @return 一个 {@link ParameterMap}
     * @create on 2018/11/30 by winkyle
     */
    public ParameterMap getParameterMap(Object... data) {
        ParameterMap parameterMap = new ParameterMap();
        if(data!=null&&data.length % 2 != 1) {
            for (int i = 0; i < data.length / 2; i++) {
                parameterMap.put(data[i * 2], data[i * 2 + 1]);
            }
        }
        return parameterMap;
    }
}
